package com.fz.us.admin.dict.service;

import com.fz.us.admin.base.bean.BaseEnumManager;
import com.fz.us.admin.base.bean.Result;
import com.fz.us.admin.base.service.BaseService;
import com.fz.us.admin.dict.entity.Dict;

import java.util.List;
import java.util.Map;

/**
 * Service接口 - 字典
 * ============================================================================
 * 版权所有 2016 。
 *
 * @author fallenpanda
 * @version 1.0 2016-07-21 。
 * ============================================================================
 */
public interface DictService extends BaseService<Dict, String>{

    /**
     * 字典列表(系统级)
     *
     * @return
     */
    public List<Dict> listSystem();

    /**
     * 字典列表(自定义级)
     *
     * @param keyId 类型
     * @return
     */
    public List<Dict> listDefault(String keyId);

    /**
     * 查找字典对象
     *
     * @param value key
     * @return
     */
    public Dict getByValue(String value);

    /**
     * 关键 key 是否已存在
     *
     * @param value key
     * @return
     */
    public boolean isExistValue(String value);

    /**
     * 添加系统字典
     *
     * @param name
     * @param value
     * @param description
     * @return
     */
    public Result addDict(String name, String value, String description, int ifKey);

    /**
     * 添加自定义字典
     *
     * @param keyId
     * @param name
     * @param value
     * @param description
     * @return
     */
    public Result addDict(String keyId, String name, String value, String description);

    /**
     * 修改系统字典
     *
     * @param dictId
     * @param name
     * @param value
     * @param description
     * @return
     */
    public Result editDict(String dictId, String name, String value, String description, int ifKey);

    /**
     * 列表 Map
     *
     * @param dict
     * @return
     */
    public Map<String, Object> getListMap(Dict dict);

    /**
     * 详情 Map
     *
     * @param dict
     * @return
     */
    public Map<String, Object> getDetailMap(Dict dict);

}
